// pages/cart/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:{},
    cart:{},
    allChecked:false,
    totalPrice:0,
    totalNum:0
  },
  //点击加号或者减号 来添加商品
  handleNumEdit(e){
    console.log(e)
    // 获取传递的参数
   let {id,type} =e.currentTarget.dataset;
   let {cart}=this.data;
   let index=cart.findIndex(v=>v.goodsId===id);
   if(cart[index].num===1&&type===-1){
    wx.showModal({
      title: '提示',
      content: '你是否要删除该商品',
      success:res=> {
        if (res.confirm) {
          cart.splice(index,1);
          this.setCart(cart)
        } else if (res.cancel) {
          console.log('用户点击取消')
          return ;
        }
      }
    })
   }else{
    cart[index].num+=type;
    this.setCart(cart)
   }
   
  },
  //点击结算功能
  handlePlay(){
    let {address,totalNum}=this.data;
    if(!address.userName){
      wx.showToast({
        title: '您还没有选择送货地址',
        icon: 'success',
        duration: 2000
      })
      return;
    }
    if(totalNum===0){
      wx.showToast({
        title: '您还没有选择合适的商品',
        icon: 'success',
        duration: 2000
      })
      return;
    }
    wx.navigateTo({
      url: '../play/index',
    })
  },
// 获取用户的地址信息
  handleChangeAddress(){
    wx.chooseAddress({
      success: (result) => {
        //将获取到的信息存储到缓存中
        wx.setStorageSync('address', result)
      },
    })
  }, 
  handleChecked(e){
    //拿到商品id
     let goodsId=e.target.dataset.id;
     //获取购物车数组
     const {cart}=this.data;
     const index=cart.findIndex(v=>v.goodsId===goodsId);
     cart[index].checked=!cart[index].checked;
     this.setCart(cart)
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let address=wx.getStorageSync('address');
    //获取缓存中的数据
    const cart=wx.getStorageSync('cart')||[];
    this.setData({address})
    this.setCart(cart)
  },
  //商品的全选的功能
  handleAllChecked(){
     let {cart,allChecked}=this.data;
     allChecked=!allChecked;
     cart.forEach(v=>{
       v.checked=allChecked;
     })
     this.setCart(cart)
  },
  setCart(cart){
    const allChecked=cart.length?cart.every(v=>v.checked):false;
     let totalPrice=0;
     let totalNum=0;
     cart.forEach(v=>{
       if(v.checked){
         totalPrice+=v.num*v.goodsPrice;
         totalNum+=v.num
       }
     })
     this.setData({cart,totalPrice,totalNum,allChecked})
     wx.setStorageSync('cart', cart)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})